/*
* @Author: xfy
* @Date:   2017-08-25 11:21:45
* @Last Modified by:   xfy
* @Last Modified time: 2017-09-15 14:43:17
*/

'use strict';
var Hogan = require('hogan.js');
//后期如果有更改前缀的话，方便改动
var conf = {
    serverHost : ''
};
var _supper = {
    //网络请求
    request : function(param){
        var _this = this;
        $.ajax({
            type        : param.method          || 'get',
            url         : param.url             || '',
            async       : !param.async,
            dataType    : param.type            || 'json',
            mimeType    : "multipart/form-data",
            data        : param.data            || '',
            success     : function(res){
                //请求成功
                if(1 === res.status){
                    typeof param.success === 'function' && param.success(res.data, res.msg);
                }
                //未登录状态
                else if(10 === res.status){
                    _this.doLogin();
                }
                //非管理员用户
                else if(20 === res.status){
                    _this.doAdminLogin();
                }
                //请求参数错误
                else if(0 === res.status){
                    typeof param.error === 'function' && param.error(res.msg);
                }
            },
            error       : function(err){
                typeof param.error === 'function' && param.error(err.statusText);
            }
        });
    },
    //获取服务器地址
    getServerUrl : function(path){
        return conf.serverHost + path;
    },
    //获取url参数
    getUrlParam : function(name){
        //?keyword=xxx&categoryId=26
        //用正则获取
        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
        //去掉第一个问号，并且开始匹配
        var result = window.location.search.substr(1).match(reg);
        return result ? decodeURIComponent(result[2]) : null;
    },
    //将传入的模板和数据进行拼接，渲染html模板
    renderHtml : function(htmlTemplate, data){
        //先编译
        var template = Hogan.compile(htmlTemplate),
        result = template.render(data);
        return result;
    },
    //成功提示
    successTips : function(msg){
        var $successTips    = $('.successTips'),
            tips            = $successTips.find('.success-content').text(msg || '操作成功');
        $successTips.show();
        window.setTimeout(function() {$successTips.hide();}, 1500);
    },
    //错误提示
    errorTips : function(msg){
        var $errorTips    = $('.errorTips'),
            tips          = $errorTips.find('.error-content').text(msg || '操作失败');

        $errorTips.show();
        window.setTimeout(function() {$errorTips.hide();}, 1500);
    },
    //字段验证，支持是否为空、手机、邮箱验证
    validata : function(value, type){
        var value = $.trim(value);
        //非空验证
        if('require' === type){
            //强转为布尔型
            return !!value;
        }
        //手机号验证
        if('phone' === type){
            return /^1[34578]\d{9}$/.test(value);
        }
        //邮箱验证
        if('email' === type){
            return /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test(value);
        }
    },
    //统一登录处理，包括跳转过来的路径
    doLogin : function(){
        window.location.href = './user-login.html?redirect=' + encodeURIComponent(window.location.href);
    },
    //管理员登录入口
    doAdminLogin : function(){
        window.location.href = './admin-user-login.html?redirect=' + encodeURIComponent(window.location.href);
    },
    //跳回主页
    goHome : function(){
        window.location.href = './index.html';
    }
};

module.exports = _supper;